package com.zombieprogrammer.hub_visuales;

import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.zombieprogrammer.fisicas.Estadio_Fisico;
import com.zombieprogrammer.juego.Randmonster;
import com.zombieprogrammer.pantallas.Pantalla;

public class Contenedor extends Actor {

	// ATRIBUTOS

	private boolean vacio = true;
	private float x;
	private float y;
	private float alto;
	private float ancho;
	private Sprite sprite;
	private float zoom;
	private Estadio_Fisico estadio_fisico;
	private Texture textura_contenedorvacio;
	private Texture textura_contenedorlleno;
	private Randmonster rm;
	private Texture bound = new Texture("texturas/hub/dfbar.png");

	// CONSTRUCTOR

	public Contenedor(float x, float y, float alto, float ancho,
			Pantalla pantalla) {
		this.estadio_fisico = new Estadio_Fisico(x, y, alto, ancho, pantalla);
		this.x = x;
		this.y = y;
		this.alto = alto;
		this.ancho = ancho;
		this.zoom = pantalla.getZoom();
		textura_contenedorvacio = new Texture(
				"texturas/hub/contenedorvacio.png");
		textura_contenedorlleno = new Texture(
				"texturas/hub/contenedorlleno.png");
		this.sprite = new Sprite(textura_contenedorvacio);
		this.sprite.setPosition(x * zoom, y * zoom);
		this.sprite.setSize(ancho * zoom, alto * zoom);
		this.sprite.setOrigin(this.sprite.getWidth() / 2,
				this.sprite.getHeight() / 2);

	}

	// METODOS

	public boolean esta_vacio(float pos_x, float pos_y) {
		if ((pos_x >= x) && (pos_x <= (x + ancho)) && (pos_y >= y)
				&& (pos_y <= (y + alto))) {
			return true;
		} else {
			return false;
		}

	}

	@Override
	public void draw(Batch batch, float parentAlpha) {
		this.sprite.draw(batch);
		// drawBounds(batch);
	}

	@Override
	public void act(float delta) {
		// setBounds();
		if (vacio) {
			this.sprite.setTexture(textura_contenedorvacio);
		} else {
			this.sprite.setTexture(textura_contenedorlleno);

		}
	}

	public void setBounds() {
		this.setBounds(x, y, getSprite().getWidth(), getSprite().getWidth());
	}

	public void drawBounds(Batch batch) {

		batch.draw(bound, x, y, getSprite().getWidth(), getSprite().getWidth());
	}

	// GETTES&SETTER

	public boolean isVacio() {
		return vacio;
	}

	public float getX() {
		return x;
	}

	public float getY() {
		return y;
	}

	public float getAlto() {
		return alto;
	}

	public float getAncho() {
		return ancho;
	}

	public void setVacio(boolean vacio) {
		this.vacio = vacio;
	}

	public void setX(float x) {
		this.x = x;
	}

	public void setY(float y) {
		this.y = y;
	}

	public void setAlto(float alto) {
		this.alto = alto;
	}

	public void setAncho(float ancho) {
		this.ancho = ancho;
	}

	public Sprite getSprite() {
		return sprite;
	}

	public void setSprite(Sprite sprite) {
		this.sprite = sprite;
	}

	public Randmonster getRm() {
		return rm;
	}

	public void setRm(Randmonster rm) {
		this.rm = rm;
	}

}
